﻿<html DIR="LTR" xmlns:tool="http://www.microsoft.com/tooltip" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
  <head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8" />
    <META NAME="save" CONTENT="history" />
    <title>Wrappers e interfaces</title>
    
    <link rel="stylesheet" type="text/css" href="../local/Classic.css">
      
    </link>
    
    <script src="../local/script.js">
      
    </script><script src="../local/script_main.js">&amp;nbsp;</script>
  </head>
  <body>
    <!--Topic built:04/01/2010 05:03:30-->

    
    
    
    
    
    
    
    
    
    <div id="header">
      <table width="100%" id="topTable"><tr>
          <td align="left">
            <span id="headerBold">Wrappers e interfaces</span>
          </td>
          <td align="right">
            
          </td>
        </tr></table>
      
      
      
    </div>
    <div id="mainSection">
      
        
        
    <font color="DarkGray">
      
    </font>
    <p />
    
    <p />
  
        <div id="introductionSection" class="section">
    <p>O Microsoft SQL Server JDBC Driver dá suporte a interfaces que permitem criar um proxy de uma classe, além de wrappers que permitem acessar extensões para a API JDBC específicas do SQL Server JDBC Driver por meio de uma interface de proxy.</p>
  </div><h1 class="heading">Wrappers</h1><div id="sectionSection0" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">O SQL Server JDBC Driver dá suporte à interface java.sql.Wrapper. Essa interface fornece um mecanismo para acessar extensões para a API JDBC específicas do SQL Server JDBC Driver por meio de uma interface de proxy.</p>
      <p xmlns="">A interface java.sql.Wrapper define dois métodos: <b>isWrapperFor</b> e <b>unwrap</b>. O método <b>isWrapperFor</b> verifica se o objeto de entrada especificado implementa essa interface. O método <b>unwrap</b> retorna um objeto que implementa essa interface para permitir o acesso aos métodos específicos do SQL Server JDBC Driver.</p>
      <p xmlns="">
        Os métodos <b>isWrapperFor</b> e <b>unwrap</b> são expostos da seguinte forma:</p>
      <ul xmlns=""><li>
          
            <a href="71156863-3588-453e-b5a5-0573b2c1bebf.htm">Método isWrapperFor (SQLServerCallableStatement)</a>
          <br />
        </li><li>
          
            <a href="cbbf2728-b8c8-4c35-875a-6e967c8285dc.htm">Método unwrap (SQLServerCallableStatement)</a>
          <br />
        </li><li>
          
            <a href="09ed10eb-6e46-437b-a7c0-3c55574aad38.htm">Método isWrapperFor (SQLServerConnectionPoolDataSource)</a>
          <br />
        </li><li>
          
            <a href="f5c9b734-2096-4ae4-a284-6b4d1b4a00d4.htm">Método unwrap (SQLServerConnectionPoolDataSource)</a>
          <br />
        </li><li>
          
            <a href="f77af027-c021-4a17-b264-1ee592bfdd84.htm">Método isWrapperFor (SQLServerDataSource)</a>
          <br />
        </li><li>
          
            <a href="eb8abe29-f3ec-4752-a590-1d5dc3e48f08.htm">Método unwrap (SQLServerDataSource)</a>
          <br />
        </li><li>
          
            <a href="b0e591b1-73e2-4f90-967f-5555eadfc3f1.htm">Método isWrapperFor (SQLServerPreparedStatement)</a>
          <br />
        </li><li>
          
            <a href="8e3ec950-3ac1-4c28-9e97-ddce3bd46578.htm">Método unwrap (SQLServerPreparedStatement)</a>
          <br />
        </li><li>
          
            <a href="53f3291f-d43a-476b-a656-d86168dacf6c.htm">Método isWrapperFor (SQLServerStatement)</a>
          <br />
        </li><li>
          
            <a href="ce680176-ef04-4e44-bb6c-ec50bd06e7e6.htm">Método unwrap (SQLServerStatement)</a>
          <br />
        </li><li>
          
            <a href="d612461d-4c3f-46db-b968-ff4c80b2aa7c.htm">Método isWrapperFor (SQLServerXADataSource)</a>
          <br />
        </li><li>
          
            <a href="d97c99b3-2224-4abb-8b32-40aff49fe759.htm">Método unwrap (SQLServerXADataSource)</a>
          <br />
        </li></ul>
    </content></div><h1 class="heading">Interfaces</h1><div id="sectionSection1" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">Desde o SQL Server JDBC Driver 3.0, as interfaces são disponibilizadas para um servidor de aplicativo a fim de acessar um método específico de driver a partir da classe associada. O servidor de aplicativo pode encapsular a classe, criando um proxy, expondo a funcionalidade específica do  SQL Server JDBC Driver a partir de uma interface. O SQL Server JDBC Driver dá suporte a interfaces que têm os métodos específicos e constantes do SQL Server JDBC Driver para que um servidor de aplicativo possa criar um proxy da classe.</p>
      <p xmlns="">Como as interfaces derivam das interfaces Java padrão, você pode usar o mesmo objeto após o desencapsulamento para acessar a funcionalidade específica do driver ou da funcionalidade genérica do SQL Server JDBC Driver.</p>
      <p xmlns="">As seguintes interfaces são adicionadas:</p>
      <ul xmlns=""><li>
          
            <a href="030a1631-cfcd-41e0-beb5-47f93c01e8e0.htm">ISQLServerCallableStatement</a>
          <br />
        </li><li>
          
            <a href="031c01e2-2c65-4fe4-9700-fdbcc7a39f30.htm">ISQLServerConnection</a>
          <br />
        </li><li>
          
            <a href="ba1d3242-19ca-4321-83fe-867a4f69f1d4.htm">ISQLServerDataSource</a>
          <br />
        </li><li>
          
            <a href="cf87892e-5c34-4ac6-8258-c2a81e117b26.htm">ISQLServerPreparedStatement</a>
          <br />
        </li><li>
          
            <a href="002496f7-8ec0-4267-b4e6-ba095e2ef306.htm">ISQLServerResultSet</a>
          <br />
        </li><li>
          
            <a href="7f83b514-6e76-4f37-baf3-a10db2010e7c.htm">ISQLServerStatement</a>
          <br />
        </li></ul>
    </content></div><h1 class="heading">Exemplo</h1><div id="sectionSection2" class="section"><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
    </content><sections xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <h1 class="heading" xmlns="">Descrição</h1><div id="sectionSection" class="section" xmlns=""><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
          <p xmlns="">Esse exemplo demonstra como acessar uma função específica do SQL Server JDBC Driver a partir de um objeto <b>DataSource</b>. Essa classe <b>DataSource</b> pode ter sido encapsulada por um servidor de aplicativo. Para acessar a função específica ou a constante do JDBC Driver, é possível desencapsular a fonte de dados em uma interface <b>ISQLServerDataSource</b> e usar as funções declaradas na interface.</p>
        </content></div>
      <h1 class="heading" xmlns="">Código</h1><div id="sectionSection" class="section" xmlns=""><content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
          <div class="sampleCode" xmlns=""><span codeLanguage="other"><pre>import javax.sql.*;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;

public class UnWrapTest {
   public static void main(String[] args) {
      // This is a test.  This DataSource object could be something from an appserver 
      // which has wrapped the real SQLServerDataSource with its own wrapper
      SQLServerDataSource ds = new SQLServerDataSource();
      checkSendStringParametersAsUnicode(ds);
   }

   // Unwrap to the ISQLServerDataSource interface to access the getSendStringParametersAsUnicode function
   static void checkSendStringParametersAsUnicode(DataSource ds) {
      try {
         final ISQLServerDataSource sqlServerDataSource = ds.unwrap(ISQLServerDataSource.class);
         boolean sendStringParametersAsUnicode = sqlServerDataSource.getSendStringParametersAsUnicode();

         System.out.println("Send string as parameter value is:-" + sendStringParametersAsUnicode);

      } catch (SQLException sqlE) {
         System.out.println("Exception:-" + sqlE);
      }
   }
}</pre></span></div>
        </content></div>
    </sections></div><span id="seeAlsoSpan"><h1 class="heading">Consulte também</h1></span><div id="seeAlsoSection" class="section" name="collapseableSection"><a href="7802328d-4d23-4775-9573-4169b127d258.htm">Entendendo os tipos de dados do JDBC Driver</a><br /><br /></div><!--[if gte IE 5]>
			<tool:tip element="seeAlsoToolTip" avoidmouse="false"/><tool:tip element="languageFilterToolTip" avoidmouse="false"/><tool:tip element="roleInfoSpan" avoidmouse="false"/>
		<![endif]-->
      <div id="footer" class="section">
        
		<hr />
		
		<span id="fb" class="feedbackcss">
			
			
		</span>
		
		<a href="9bad553b-9e70-4696-8499-2e35f772a1e0.htm">
			
			© 2010 Microsoft Corporation. Todos os direitos reservados.
		</a>
 	
	
      </div>
    </div>
  </body>
</html>